package main.java.com.pzhu.algorithm;

import java.lang.reflect.Array;
import java.util.Arrays;

/**
 * 80. 删除有序数组中的重复项 II
 * 给你一个有序数组 nums ，请你 原地 删除重复出现的元素，使得出现次数超过两次的元素只出现两次 ，返回删除后数组的新长度。
 *
 * 不要使用额外的数组空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
 *
 *
 * @author rediaz
 * @date 2024-06-11
 */

public class _007removeDuplicates {
    public static int removeDuplicates(int[] nums) {
        int k = 1;
        for (int i = 1; i < nums.length; i++) {
            if (i + 1 == nums.length || nums[i - 1] != nums[i + 1]) {
                nums[k] = nums[i];
                k++;
            }
        }
        return k;
    }


    public static void main(String[] args) {
        int[] a1 = new int[]{1, 1, 1, 2, 2, 3};
        int[] a2 = new int[]{0, 0, 1, 1, 1, 1, 2, 3, 3};
        System.out.println("数据新长度：" + removeDuplicates(a1) + " 数组返回后结果：" + Arrays.toString(a1));
        System.out.println("数据新长度：" + removeDuplicates(a2) + " 数组返回后结果：" + Arrays.toString(a2));
    }
}
